package br.boicotando.dao;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;

import br.boicotando.persistencia.ECliente;

public class ClienteDaoDB extends DaoDB<ECliente> implements ClienteDao {

	public ClienteDaoDB(Session sess) {
		super(sess);
	}

	@Override
	public ECliente consultarId(String id) {
		Query qry = sess.createQuery("select c from ECliente c where c.id = :id");
		qry.setParameter("id", id);
		List<?> clientes = qry.list();
		if (!clientes.isEmpty()) {
			return (ECliente) clientes.get(0);
		}		
		return null;
	}

	@Override
	@SuppressWarnings("unchecked")
	public List<ECliente> consultarTodos() {
		Query qry = sess.createQuery("select o from ECliente o");
		List<?> clientes = qry.list();
		return (List<ECliente>) clientes;
	}

	@Override
	public ECliente consultarEmail(String email) {
		Query qry = sess.createQuery("select c from ECliente c where c.email = :email");
		qry.setParameter("email", email);
		List<?> clientes = qry.list();
		if (!clientes.isEmpty()) {
			return (ECliente) clientes.get(0);
		}		
		return null;
	}

	@Override
	public ECliente consultarCPF(String CPF) {
		Query qry = sess.createQuery("select c from ECliente c where c.CPF = :CPF");
		qry.setParameter("CPF", CPF);
		List<?> clientes = qry.list();
		if (!clientes.isEmpty()) {
			return (ECliente) clientes.get(0);
		}		
		return null;
	}


}
